【レポート】ダイソーにおけるサーバレスファースト企業の目指し方 #AWSSummit
AWS Summit Tokyo 2019のセッションレポートです。こちらでは「ダイソーにおけるサーバレスファースト企業の目指し方」の内容をレポートします。
コンニチハ、千葉です。
本ブログは、AWS Summit 2019 day2のセッションレポートになります。 本セッションは、100円ショップ ダイソーを展開している大創産業さんでのサーバーレス導入をどう進めるかに関するセッションです。
セッション概要
登壇者
株式会社大創産業 情報システム部 課長
丸本 健二郎様
概要
ダイソーは、世界27カ国、5,270店舗(2018年3月時点)を展開しています。取扱商品は約70,000 種類。毎月約 700 種類の新商品を開発しています。本セッションでは、オンプレ開発をしていたダイソーが、どうやってサーバーレスファーストの組織に変わっていったのか、きっかけ、メンバーのマインド、コストについて、そして、ダイソーのサーバーレスBI(Amazon QuickSight)、とサーバーレスインターフェイス基盤の事例をお話します。
セッション内容
ダイソーのビジネス
- 店舗数:5270
- 商品:7万点
- 大量に安く仕入れて提供している
アジェンダ
- サーバーレスとの出会い
- なぜサーバーレス?
- どうやってサーバーレスを導入したか
- サーバーレスの事例
サーバーレスとの出会い
- ビジネス課題を解決するために選んだ
- 商品数が多く、新商品も毎月800くらいでる、商品ローテーションも多い
- 欠品しないようにシステムを導入、全店舗展開しようとしたがデータ容量が多く、スケーラビリティが間に合わない。調べたら100億レコードあった。
- これを新しい技術で解決しようとした
- クラウドで解決しようとしてサーバーレスに出会った
- RDBMSとRedshiftと検証した。データ量に対して、Redshifはクエリレスポンスが全然劣化しなかった。結果バッチ処理が間に合うようになった。
なぜサーバーレス?
- スケーラビリティ
- 特化したそれぞれの機能を組み合わせて、スケーラビリティを確保できる
- 3時間で終わらせる処理を、1時間で終わらせたい。ただし、スケールアップ型にはハードウェアの限界があるので、スケールアウト型を選択
- サーバーレスはスケールアウト型なので、すごく拡張性がある
- BCP
- 事業継続性はどうなのか?データセンターがなくなったときに、データが消え、事業が継続できなくなる
- サーバーレスだと、AWS側で冗長構成組まれてるので、AZレベルでデータ冗長化が可能。サーバーレスに至っては、利用者で意識しなくていい。これがすごく重要。
- コスト
- 仮想サーバーの場合は、リソースはスケールアップ、スケールアウト、スケールダウンを行う。ある程度想定して対応が必要。
- サーバーレスの場合は、イベント駆動
人員配置とキャリア
- オンプレは土地、データセンターの耐震評価、電源、サーバー、VM、OS、ミドル、アプリまで考慮が必要
- サーバーレスは、インフラ領域はAWSに任せて、よりアプリエンジニアに人を配置できる。より、ビジネスに注力できる。
- 今までインフラがクラウドでまかなえる部分が多くなってきてる、ではどインフラやっていた人材はどうすればいい?
- 時代が変わると、同じ技術も変わっていく。常に新しいことを取り入れていく必要がある。
- 採用
- 本社が広島なので、エンジニアが不足している。どうやっているか?
- サーバーレスをやり始めて、いろいろなメディアに取り上げてもらえることができた。
- 遠くてもいい、ダイソーさんと仕事したいという人が増えてきた。広島でサーバーレスというのは、稀有な存在
どうやってサーバーレス導入している?
- まずは強引に使い始めた
- レガシーなWebシステムをサーバーレスにどうやるか?必要な機能、コアな部分は同じ。WebシステムのコンポーネントがS3やLambdaなど、コンポーネントが置き換わっただけ。考え方は何も変わらない。
- 一番最初にやったことは、結合度を下げるシステム
- 密結合とは、一方にメスをいれると、もう一方にもメスにいれないといけない。結合していればいれるほど、波及する。ちょっとした機能変更も、変更に莫大なリソースが必要になる
- マイクロサービスのように、結合度を下げていくことで、小さな改修を入れられるように考えた。そこで、まずはSQSを導入し、結合度を下げていった
- 社内勉強会でどんどんやっていった。コスト度外視で、アウトプット重視の組織作りにしていった。業務時間にブログ読むのもOKにした。
- Well-Architectedまとめを作っている。サーバーレス用の設計、開発、それぞれのフェーズでチェックシートを作っている。
- 色々触るのではなく、ビジネス視点を持ちつつ、最適になっているかをチェックし、見直しを行っている。技術だけによらないように、バランスを見ている
サーバーレスの事例
- POSデータ保持システム
- 受け取り、チェック、ためる、参照、をそれぞれのシステムとして構築。密結合せず、それぞれアップデートできるような仕組みにしている
- POSデータ分析システム
- 受け取り、処理(非正規化)、参照というシステムで作っている
- S3、Glue、QuickSight
- インターフェイス統合システム
- レッドポストという仕組みを作った
- ftpとかsftpとか様々なプロトコルを中継するシステム
- Goでエージェントを作って、柔軟に連携できるようにした
- どのデータを、どこに送るかみたいなのを制御する
- イメージははがきの配達。どんなデータでも、行き先に届けることができる
- コスト
- 210万くらいの構成になるところ、サーバーレス化で30万におさえられている、品質についても向上した
まとめ
- すべて汎用ではなく、サービスの特徴を活かした構成にする
- どんどん新しいサービスが出てくる、もっといいのが出た時に交換できるように、疎結合に!
- サーバーレスファーストに!!
- ダイソーで働きたい人も募集してます!